package com.fotkidemo.tasks;

import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import com.fotkidemo.BuildConfig;
import com.fotkidemo.network.NetworkUtil;
import com.fotkidemo.network.json.JsonServiceParser;

import java.io.IOException;

/**
 * Created with IntelliJ IDEA.
 * User: roma
 * Date: 6/27/12
 * Time: 4:14 AM
 * To change this template use File | Settings | File Templates.
 */

/**
 * Задача получения и разбора сервис-документа с коллекциями пользователя
 */
public class DownloadAndParseServiceTask {
    private static final String TAG = "DownloadAndParseServiceTask";
    private Context context;

    public DownloadAndParseServiceTask(Context context) {
        this.context = context;
    }

    public void execute(String url) {
        new DownloadServiceTask().execute(url);
    }

    /**
     * Асинхронная загрузка сервис-документа
     */
    private class DownloadServiceTask extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... urls) {
            try {
                return NetworkUtil.loadInfo(urls[0]);
            } catch (IOException e) {
                Log.e(TAG, e.getMessage());
                return null;
            }
        }

        @Override
        protected void onPostExecute(String result) {
            if (result != null) {

                if (BuildConfig.DEBUG)
                    Log.d(TAG, "Parse json service");

                new ParseServiceTask().execute(result);
            }
        }
    }

    /**
     * Асинхронный разбор json-ответа с сервис-документом
     */
    private class ParseServiceTask extends AsyncTask<String, Void, Void> {

        @Override
        protected Void doInBackground(String... jsons) {
            JsonServiceParser serviceParser = new JsonServiceParser(context, jsons[0]);
            serviceParser.parse();
            return null;
        }
    }
}
